Present-day semiconductor wafer fabrication factories (or ‘fabs’) are extremely complex environments that require an extraordinary amount of coordination. For example, a typical fab may consist of hundreds of wafer processing tools, each of which may be responsible for performing one or more of a variety of operations or processes. Thus, where a wafer is processed into items such as logic (e.g., central processing units) or memory (e.g., DRAMs), each tool performs one or more operations or series of operations on the wafer. After a tool performs its operation, the wafer may be forwarded to a downstream tool where additional operations or series of operations may be performed. Each tool may process wafers according to hundreds of distinct processes, with each having hundreds of individual steps. Ultimately, the sum of operations performed by these tools on the wafer results in the final product or the final state of the wafer.
To further complicate matters, each tool may be logically or physically grouped with a number of other tools in one or more modules, submodules, or other functional units. For instance, the tools may be grouped together as a module to provide some related function (e.g., to produce a higher level product) or combination of functions within the fab. Similarly, the tools may be grouped together based on geographical or physical considerations. In any event, the tools in a module or submodule operate in a coordinated fashion to produce a portion of the desired fab final product. The sum of these portions produces the final product. Thus, each functional unit completes one or more jobs on the wafers before they are advanced to any subsequent modules or submodules in the fab.
To manage these functional units (i.e., the fab, modules, submodules and/or tools), any number of controllers may be implemented at each level. Each controller directs its functional unit in performing a process or series of processes on a wafer. The controllers may utilize any number of models to determine parameter targets necessary for producing the functional unit final product. Thus, each model determines the targets that must be obtained by the processes or operations of the functional unit required to obtain the desired product, as specified by an inputted target. The controller then directs the functional unit to perform the operation or series of operations.
These levels of management or control, while helpful in increasing efficiency, add to the complexity of the system. Thus, even in the simplest cases, fabs are extremely complex. Clearly then, the sheer volume of information has made the operation and control of fabs a major problem.
Despite the large volumes of data and multiple levels of control involved in its management, fab management has been accomplished primarily by manual methods. For instance, in the example described above, the targets and other inputs have traditionally been entered manually by, for example, fab technicians and/or process engineers. In this manner, many of the controller responsibilities were assumed by these technicians and engineers. To implement a change to a final product, new targets are entered into the functional units at each level by these technicians. Thus, with a new fab product, alterations (e.g., inputting a new target) are made manually to the product parameters at all module, submodule, and tool level functional units.
In a similar manner, changes to the operating state of a tool (or other functional unit) due to for example normal wear, also require modifications to the targets of the functional unit by the process engineers. Also, in addition to the changes at the functional unit, modifications must be made to higher level and surrounding functional units (i.e., other modules and tools) to account for these changes as well. Like the above, the process engineers must also make these target modifications manually.
To alter the final product of a wafer fab, a process engineer first identifies the new product and its target parameters. Subsequently, each of the functional units of the fab is ordered to produce a result, which when combined with the results of the other functional units of the fab, produces the final product. Hence, each module, submodule, and tool must be told, by a technician or engineer, what to do and how to do it. Each functional unit requires a process engineer to enter the target or desired result of the functional unit. In the past, controllers capable of generating certain targets above the tool level have been implemented. However, no techniques have been developed for forwarding information to the tool level or for generating tool level targets. Thus, at the tool level, a target wafer output (i.e., a desired result after processing by an individual tool), such as a required thickness, must be identified and entered by the process engineer. The tool may then identify or select a recipe (i.e., a set of predefined process parameters required to effectuate a processing outcome) for obtaining the target wafer output (thickness in this case). Thus, with each alteration to a final product of a fab, hundreds if not thousands of modifications must be made by these technicians or engineers.
What is therefore needed is a technique for automating these and similar modifications at the functional units. Instead of entering target parameters or implementing modifications at each level, what would be highly useful is a technique that can be utilized to implement control at one functional unit level, which in turn controls functional units at other or lower levels. For example, it would be highly useful if control could be implemented at a single functional unit for the entire fab. In this manner, a product specification may be entered at one level, thus allowing targets at other levels to be generated automatically.